Метавселенная. Создание пространственного интернета - Мэтью Болл
Microsoft Flight Simulator работает за счет хранения относительно небольшой части "игры" на устройстве пользователя - около 150 Гб. Этой части достаточно для запуска игры - она содержит весь код игры, визуальную информацию для множества самолетов и несколько карт. Благодаря этому MSFS можно использовать в автономном режиме. Однако пользователи в автономном режиме видят в основном процедурно сгенерированные окружения и объекты, а такие достопримечательности, как Манхэттен, в целом знакомы, но населены типовыми, в основном дублирующимися зданиями, которые лишь иногда и случайно напоминают свои реальные аналоги. Существуют некоторые заранее запрограммированные маршруты полетов, но они не могут имитировать реальные маршруты, и один игрок не может увидеть самолет другого игрока.
Именно когда игроки выходят в сеть, MSFS становится таким чудом: серверы Microsoft передают новые карты, текстуры, данные о погоде, маршруты полетов и любую другую информацию, которая может понадобиться пользователю. В каком-то смысле игроки воспринимают мир MSFS точно так же, как и пилоты в реальном мире. Когда они пролетают над горой или вокруг нее, новая информация попадает в сетчатку глаза через частицы света, открывая и затем проясняя то, что находится там впервые. До этого пилот знает только то, что, по логике вещей, там что-то должно быть.
Многие геймеры полагают, что так происходит во всех многопользовательских онлайн-играх. Но на самом деле большинство онлайн-игр стараются передать пользователю как можно больше информации заранее и как можно меньше во время игры. Это объясняет, почему для игры, даже такой относительно небольшой, как Super Mario Bros., необходимо покупать цифровые диски, содержащие многогигабайтные файлы игры, или тратить часы на скачивание этих файлов, а затем еще больше времени на их установку. А время от времени нам могут предложить скачать и установить многогигабайтное обновление, прежде чем мы снова сможем играть. Эти файлы так велики, потому что содержат почти всю игру - ее код, игровую логику, все активы и текстуры, необходимые для внутриигрового окружения (все виды деревьев, все аватары, все боссы, все оружие и так далее).
Для типичной онлайн-игры что на самом деле дают многопользовательские серверы? Совсем немного. Размер файлов игры Fortnite для ПК и консолей составляет около 30 ГБ, но при сетевой игре в час загружается всего 20-50 МБ (или 0,02-0,05 ГБ) данных. Эта информация подсказывает устройству игрока, что делать с уже имеющимися данными. Например, если вы играете в онлайн-игру Mario Kart, серверы Nintendo сообщат вашей Nintendo Switch, какие аватары используют ваши соперники и что им следует загрузить. Во время матча ваше постоянное соединение с этим сервером позволяет ему отправлять постоянный поток данных о том, где именно находятся эти противники ("позиционные данные"), что они делают (посылают в вас красный снаряд), как общаются (например, звук вашего товарища по команде), а также различную другую информацию, например, сколько игроков еще участвуют в матче.
То, что онлайн-игры остаются "в основном оффлайн", удивляет даже заядлых геймеров. В конце концов, большинство музыки и видео сейчас транслируется - мы больше не скачиваем песни и телешоу, не говоря уже о покупке физических компакт-дисков для их хранения, а видеоигры якобы являются более технически сложной и перспективной медиакатегорией. Однако именно из-за сложности игр те, кто их делает, предпочитают отодвигать интернет на второй план - потому что интернет ненадежен. Соединения ненадежны, пропускная способность ненадежна, задержки ненадежны. Как я уже говорил в главе 3, большинство онлайн-услуг могут пережить эту ненадежность, но игры - нет. В результате разработчики предпочитают как можно меньше полагаться на интернет.
Этот преимущественно офлайновый подход к онлайн-играм работает хорошо, но он накладывает множество ограничений. Например, тот факт, что сервер может только сообщить отдельным пользователям, какие активы, текстуры и модели должны быть отрисованы, означает, что каждый актив, текстура и модель должны быть известны и сохранены заранее. Отправляя данные для рендеринга по мере необходимости, игры могут иметь гораздо большее разнообразие виртуальных объектов. Microsoft Flight Simulator стремится к тому, чтобы каждый город не просто отличался друг от друга, а существовал так же, как в реальной жизни. И он не хочет хранить 100 типов облаков, а затем указывать устройству, какое облако и с какой раскраской отрисовывать; он хочет точно сказать, как должно выглядеть это облако.
Когда игрок видит своего друга в Fortnite сегодня, он может взаимодействовать с ним, используя лишь ограниченный набор заранее загруженных анимаций (или "эмоций"), например, махать рукой или ходить под луной. Однако многие пользователи представляют себе будущее, в котором их живые движения лица и тела будут воссозданы в виртуальном мире. Чтобы поприветствовать друга, они не будут выбирать 17 из 20 волн, предварительно загруженных в устройство, а будут размахивать пальцами с уникальной артикуляцией. Пользователи также надеются, что смогут переносить свои многочисленные виртуальные предметы и аватары по множеству виртуальных миров, подключенных к Metaverse. Как следует из размера файла MSFS, отправить пользователю столько данных заранее просто невозможно. Для этого нужны не только непрактично большие жесткие диски, но и виртуальный мир, который заранее знает обо всем, что может быть создано или сделано.
Необходимость "предзагрузки" живого виртуального мира имеет и другие последствия. Каждый раз, когда Epic Games изменяет виртуальный мир Fortnite - например, добавляет новые места назначения, транспортные средства или неигровых персонажей, - пользователям приходится скачивать и устанавливать обновление. Чем больше Epic добавляет обновлений, тем больше времени это занимает и тем дольше пользователю приходится ждать. Чем чаще обновляется мир, тем больше задержек испытывает пользователь.
Пакетный процесс обновления также означает, что виртуальные миры не могут быть по-настоящему "живыми". Вместо этого центральный сервер решает разослать всем пользователям определенную версию виртуального мира, которая будет существовать до тех пор, пока следующее обновление не заменит ее. Каждая версия не обязательно фиксирована - в обновлении могут быть запрограммированные изменения, например, событие в канун Нового года или снегопад, который увеличивается ежедневно, - но она заранее прописана.
Наконец, существуют ограничения на то, куда могут отправиться пользователи. Во время 10-минутного события Трэвиса Скотта в Fortnite около 30 миллионов игроков мгновенно перенеслись с основной карты игры в глубины невиданного океана, затем на невиданную планету, а потом в открытый космос. Многие из нас могут представить, что Metaverse работает аналогичным образом - пользователи могут легко переходить из виртуального мира в виртуальный мир без длительной загрузки. Но чтобы устроить концерт, Epic пришлось отправить пользователям